Hallo,
ich habe ein Problem, wo ich bereits seit mehreren Stunden eine Lösung suche. Ich komme aber leider nicht weiter.
Ich möchte mit meinem Code prüfen, ob ein Word Dokument mit einem bestimmten Namen bereits geöffnet ist. Daher möchte ich alle geöffneten Word-Dokumente mit dem Namen dieses Word Dokuments vergleichen. Habe dazu mal ein Minimalbeispiel erstellt.
Option Explicit On
Imports Microsoft.Office.Interop.Word
Public Class Form1
...
Function IsDocumentOpen(ByVal DokutName As String) As Boolean
If Strings.Right(DokutName, 5) <> ".docx" Then
DokutName = DokutName & ".docx"
End If
IsDocumentOpen = False
For Each doc In Documents
If (StrComp(doc.Name, DokutName, vbTextCompare) = 0) Then
IsDocumentOpen = True
Exit For
End If
Next doc
End Function
...
End Class
Bei der Erstellung der Schleife habe ich mich beispielsweise an https://docs.microsoft.com/de-de/office/vba/word/concepts/customizing-word/looping-through-a-collection und http://www.office-loesung.de/ftopic69417_0_0_asc.php orientiert, wo die For Each Schleife auch so verwendet wird. Ich bekomme aber leider einen Fehler für Documents angezeigt mit ""Documents" ist ein Schnittstellentyp und kann nicht als Ausdruck verwendet werden."
Generell hatte ich überlegt die Liste der Word-Dokumente anders zu durchlaufen. Als Fehlerursache hatte ich schon überlegt, ob dieser Code mit meiner Art VBA kompatibel ist, da über die vergangenen Jahrzente sich einiges getan hat. Jedenfalls programmiere ich das mit Visual Studio 2017.
Kann mir jemand bei dem Problem weiterhelfen?
|